#ifndef GPIO_CFG_EVB_H
#define GPIO_CFG_EVB_H
#include "adi_types.h"
#include "adi_gpio.h"

#define SYSTEM_USE_EXTERN_I2S       1
#define SYSTEM_USE_SDCARD           1
#define SYSTEM_USE_EXTERN_ETHPHY    0
#define SYSTEM_INIT_GADI_GPIO       1

#if SYSTEM_USE_EXTERN_I2S == 1
#define SYSTEM_GPIO_I2S_TABLE                              \

#else
#define SYSTEM_GPIO_I2S_TABLE                              \

#endif

#if SYSTEM_USE_SDCARD == 1
#define SYSTEM_GPIO_SD_TABLE                                \
    { GADI_GPIO_39, GADI_GPIO_TYPE_OUTPUT_SDIO_CLK           }, \
    { GADI_GPIO_40, GADI_GPIO_TYPE_INOUT_SD_CMD              }, \
    { GADI_GPIO_41, GADI_GPIO_TYPE_INPUT_SD_CD_N             }, \
    { GADI_GPIO_42, GADI_GPIO_TYPE_INPUT_SD_WP_N             }, \
    { GADI_GPIO_43, GADI_GPIO_TYPE_INOUT_SD_DATA_0           }, \
    { GADI_GPIO_44, GADI_GPIO_TYPE_INOUT_SD_DATA_1           }, \
    { GADI_GPIO_45, GADI_GPIO_TYPE_INOUT_SD_DATA_2           }, \
    { GADI_GPIO_46, GADI_GPIO_TYPE_INOUT_SD_DATA_3           }, \
    { GADI_GPIO_47, GADI_GPIO_TYPE_INOUT_SD1_DATA_0          }, \
    { GADI_GPIO_48, GADI_GPIO_TYPE_INOUT_SD1_DATA_1          }, \
    { GADI_GPIO_49, GADI_GPIO_TYPE_INOUT_SD1_DATA_2          }, \
    { GADI_GPIO_50, GADI_GPIO_TYPE_INOUT_SD1_DATA_3          }, \
    { GADI_GPIO_51, GADI_GPIO_TYPE_OUTPUT_SDIO1_CLK          }, \
    { GADI_GPIO_52, GADI_GPIO_TYPE_INOUT_SD1_CMD             }, \
    { GADI_GPIO_53, GADI_GPIO_TYPE_INPUT_SD1_CD_N            }, \
    { GADI_GPIO_54, GADI_GPIO_TYPE_INPUT_SD1_WP_N            },
#else
#define SYSTEM_GPIO_SD_TABLE                                \
    { GADI_GPIO_39, GADI_GPIO_TYPE_OUTPUT_AOMCLK             }, \
    { GADI_GPIO_40, GADI_GPIO_TYPE_OUTPUT_ENET_PHY_TXEN      }, \
    { GADI_GPIO_41, GADI_GPIO_TYPE_OUTPUT_ENET_PHY_TXD_3     }, \
    { GADI_GPIO_42, GADI_GPIO_TYPE_OUTPUT_ENET_PHY_TXD_2     }, \
    { GADI_GPIO_43, GADI_GPIO_TYPE_OUTPUT_ENET_PHY_TXD_1     }, \
    { GADI_GPIO_44, GADI_GPIO_TYPE_OUTPUT_ENET_PHY_TXD_0     }, \
    { GADI_GPIO_45, GADI_GPIO_TYPE_INPUT_ENET_CLK_RX         }, \
    { GADI_GPIO_46, GADI_GPIO_TYPE_INPUT_ENET_CLK_TX         }, \
    { GADI_GPIO_47, GADI_GPIO_TYPE_INPUT_ENET_PHY_RXD_3      }, \
    { GADI_GPIO_48, GADI_GPIO_TYPE_INPUT_ENET_PHY_RXD_2      }, \
    { GADI_GPIO_49, GADI_GPIO_TYPE_INPUT_ENET_PHY_RXD_1      }, \
    { GADI_GPIO_50, GADI_GPIO_TYPE_INPUT_ENET_PHY_RXD_0      }, \
    { GADI_GPIO_51, GADI_GPIO_TYPE_INPUT_ENET_PHY_RXDV       }, \
    { GADI_GPIO_52, GADI_GPIO_TYPE_INPUT_ENET_PHY_CRS        }, \
    { GADI_GPIO_53, GADI_GPIO_TYPE_OUTPUT_ENET_GMII_MDC_O    }, \
    { GADI_GPIO_54, GADI_GPIO_TYPE_INOUT_ETH_MDIO            },
#endif

// RGB 24bit

#if SYSTEM_USE_EXTERN_ETHPHY == 1
#define SYSTEM_GPIO_PHY1_TABLE                             \
    { GADI_GPIO_2,  GADI_GPIO_TYPE_OUTPUT_VD_DATA14         }, \
    { GADI_GPIO_3,  GADI_GPIO_TYPE_OUTPUT_VD_DATA15         },
#else
#define SYSTEM_GPIO_PHY1_TABLE                             \
    { GADI_GPIO_2,  GADI_GPIO_TYPE_OUTPUT_VD_DATA14         }, \
    { GADI_GPIO_3,  GADI_GPIO_TYPE_OUTPUT_VD_DATA15         },
#endif

#ifdef USE_LCD_RGB500q40p01   //RGB 24bit

#if SYSTEM_INIT_GADI_GPIO == 1
#define SYSTEM_GPIO_XREF_TABLE                             \
    { GADI_GPIO_0 , GADI_GPIO_TYPE_OUTPUT_SF_CS0             }, \
    { GADI_GPIO_1 , GADI_GPIO_TYPE_OUTPUT_SF_CS1             }, \
    { GADI_GPIO_2 , GADI_GPIO_TYPE_OUTPUT_VD_DATA14           }, \
    { GADI_GPIO_3 , GADI_GPIO_TYPE_OUTPUT_VD_DATA15/*LCD_G*/           }, \
    { GADI_GPIO_4 , GADI_GPIO_TYPE_OUTPUT_VD_DATA0 /*LCD_B*/          }, \
    { GADI_GPIO_5 , GADI_GPIO_TYPE_OUTPUT_VD_DATA1           }, \
    { GADI_GPIO_6 , GADI_GPIO_TYPE_OUTPUT_VD_DATA2           }, \
    { GADI_GPIO_7 , GADI_GPIO_TYPE_OUTPUT_VD_DATA3           }, \
    { GADI_GPIO_8 , GADI_GPIO_TYPE_OUTPUT_VD_DATA4           }, \
    { GADI_GPIO_9 , GADI_GPIO_TYPE_OUTPUT_VD_DATA5           }, \
    { GADI_GPIO_10, GADI_GPIO_TYPE_OUTPUT_VD_DATA6           }, \
    { GADI_GPIO_11, GADI_GPIO_TYPE_OUTPUT_VD_DATA7 /*LCD_B*/          }, \
    { GADI_GPIO_12, GADI_GPIO_TYPE_OUTPUT_VD_HSYNC}, \
    { GADI_GPIO_13, GADI_GPIO_TYPE_OUTPUT_VD_VSYNC}, \
    { GADI_GPIO_14, GADI_GPIO_TYPE_OUTPUT_VD_HVLD}, \
    { GADI_GPIO_15, GADI_GPIO_TYPE_OUTPUT_1/*lcd_scl*/          }, \
    { GADI_GPIO_16, GADI_GPIO_TYPE_OUTPUT_1/*lcd_sda*/          }, \
    { GADI_GPIO_17, GADI_GPIO_TYPE_OUTPUT_0/*lcd_bl_en*/}, \
    { GADI_GPIO_18, GADI_GPIO_TYPE_OUTPUT_1/*lcd_sel*/       }, \
    { GADI_GPIO_19, GADI_GPIO_TYPE_OUTPUT_VD_CLOCK/*lcd_clk*/       }, \
    { GADI_GPIO_20, GADI_GPIO_TYPE_OUTPUT_VD_DATA16/*LCD_R*/          }, \
    { GADI_GPIO_21, GADI_GPIO_TYPE_OUTPUT_VD_DATA17          }, \
    { GADI_GPIO_22, GADI_GPIO_TYPE_OUTPUT_VD_DATA18           }, \
    { GADI_GPIO_23, GADI_GPIO_TYPE_OUTPUT_VD_DATA19            }, \
    { GADI_GPIO_24, GADI_GPIO_TYPE_OUTPUT_VD_DATA20           }, \
    { GADI_GPIO_25, GADI_GPIO_TYPE_INPUT_UART0_RX            }, \
    { GADI_GPIO_26, GADI_GPIO_TYPE_OUTPUT_UART0_TX           }, \
    { GADI_GPIO_27, GADI_GPIO_TYPE_UNDEFINED /*sensor reset*/                }, \
    { GADI_GPIO_28, GADI_GPIO_TYPE_INOUT_I2C_DATA/*SDA*/     }, \
    { GADI_GPIO_29, GADI_GPIO_TYPE_INOUT_I2C_CLK /*SCL*/     }, \
    { GADI_GPIO_30, GADI_GPIO_TYPE_OUTPUT_VD_DATA21      /*USB_PD*/ }, \
    { GADI_GPIO_31, GADI_GPIO_TYPE_OUTPUT_VD_DATA22          }, \
    { GADI_GPIO_32, GADI_GPIO_TYPE_OUTPUT_VD_DATA23/*LCD_R*/           }, \
    { GADI_GPIO_33, GADI_GPIO_TYPE_OUTPUT_VD_DATA8 /*LCD_G*/         }, \
    { GADI_GPIO_34, GADI_GPIO_TYPE_OUTPUT_VD_DATA9           }, \
    { GADI_GPIO_35, GADI_GPIO_TYPE_OUTPUT_VD_DATA10            }, \
    { GADI_GPIO_36, GADI_GPIO_TYPE_OUTPUT_VD_DATA11             }, \
    { GADI_GPIO_37, GADI_GPIO_TYPE_OUTPUT_VD_DATA12    }, \
    { GADI_GPIO_38, GADI_GPIO_TYPE_OUTPUT_VD_DATA13   }, \
    SYSTEM_GPIO_SD_TABLE\
    { GADI_GPIO_55, GADI_GPIO_TYPE_UNDEFINED                 }, \
    { GADI_GPIO_56, GADI_GPIO_TYPE_UNDEFINED                 }, \
    { GADI_GPIO_57, GADI_GPIO_TYPE_UNDEFINED                 }, \
    { GADI_GPIO_58, GADI_GPIO_TYPE_UNDEFINED                 }, \
    { GADI_GPIO_59, GADI_GPIO_TYPE_UNDEFINED                 }, \
    { GADI_GPIO_60, GADI_GPIO_TYPE_UNDEFINED                 }, \
    { GADI_GPIO_61, GADI_GPIO_TYPE_INPUT_0                   }, \
    { GADI_GPIO_62, GADI_GPIO_TYPE_INPUT_0                   }
#endif

#elif defined (USE_LCD_RGB430q40p01)  //RGB 8bit

#if SYSTEM_INIT_GADI_GPIO == 1
#define SYSTEM_GPIO_XREF_TABLE                      \
    { GADI_GPIO_0 , GADI_GPIO_TYPE_OUTPUT_SF_CS0             }, \
    { GADI_GPIO_1 , GADI_GPIO_TYPE_OUTPUT_SF_CS1             }, \
    { GADI_GPIO_2 , GADI_GPIO_TYPE_UNDEFINED           }, \
    { GADI_GPIO_3 , GADI_GPIO_TYPE_UNDEFINED/*LCD_G*/           }, \
    { GADI_GPIO_4 , GADI_GPIO_TYPE_UNDEFINED /*LCD_B*/          }, \
    { GADI_GPIO_5 , GADI_GPIO_TYPE_UNDEFINED           }, \
    { GADI_GPIO_6 , GADI_GPIO_TYPE_UNDEFINED           }, \
    { GADI_GPIO_7 , GADI_GPIO_TYPE_UNDEFINED           }, \
    { GADI_GPIO_8 , GADI_GPIO_TYPE_UNDEFINED           }, \
    { GADI_GPIO_9 , GADI_GPIO_TYPE_UNDEFINED           }, \
    { GADI_GPIO_10, GADI_GPIO_TYPE_UNDEFINED           }, \
    { GADI_GPIO_11, GADI_GPIO_TYPE_UNDEFINED /*LCD_B*/ }, \
    { GADI_GPIO_12, GADI_GPIO_TYPE_OUTPUT_VD_HSYNC           }, \
    { GADI_GPIO_13, GADI_GPIO_TYPE_OUTPUT_VD_VSYNC           }, \
    { GADI_GPIO_14, GADI_GPIO_TYPE_OUTPUT_VD_HVLD            }, \
    { GADI_GPIO_15, GADI_GPIO_TYPE_OUTPUT_1/*lcd_scl*/        }, \
    { GADI_GPIO_16, GADI_GPIO_TYPE_OUTPUT_1/*lcd_sda*/       }, \
    { GADI_GPIO_17, GADI_GPIO_TYPE_OUTPUT_0/*lcd_bl_en*/      }, \
    { GADI_GPIO_18, GADI_GPIO_TYPE_OUTPUT_1/*lcd_sel*/        }, \
    { GADI_GPIO_19, GADI_GPIO_TYPE_OUTPUT_VD_CLOCK/*lcd_clk*/  }, \
    { GADI_GPIO_20, GADI_GPIO_TYPE_OUTPUT_VD_DATA0/*LCD_R*/ }, \
    { GADI_GPIO_21, GADI_GPIO_TYPE_OUTPUT_VD_DATA1          }, \
    { GADI_GPIO_22, GADI_GPIO_TYPE_OUTPUT_VD_DATA2          }, \
    { GADI_GPIO_23, GADI_GPIO_TYPE_OUTPUT_VD_DATA3          }, \
    { GADI_GPIO_24, GADI_GPIO_TYPE_OUTPUT_VD_DATA4          }, \
    { GADI_GPIO_25, GADI_GPIO_TYPE_INPUT_UART0_RX            }, \
    { GADI_GPIO_26, GADI_GPIO_TYPE_OUTPUT_UART0_TX           }, \
    { GADI_GPIO_27, GADI_GPIO_TYPE_UNDEFINED /*sensor reset*/  }, \
    { GADI_GPIO_28, GADI_GPIO_TYPE_INOUT_I2C_DATA/*SDA*/     }, \
    { GADI_GPIO_29, GADI_GPIO_TYPE_INOUT_I2C_CLK /*SCL*/     }, \
    { GADI_GPIO_30, GADI_GPIO_TYPE_OUTPUT_VD_DATA5          }, \
    { GADI_GPIO_31, GADI_GPIO_TYPE_OUTPUT_VD_DATA6          }, \
    { GADI_GPIO_32, GADI_GPIO_TYPE_OUTPUT_VD_DATA7/*LCD_R*/ }, \
    { GADI_GPIO_33, GADI_GPIO_TYPE_UNDEFINED /*LCD_G*/ }, \
    { GADI_GPIO_34, GADI_GPIO_TYPE_UNDEFINED           }, \
    { GADI_GPIO_35, GADI_GPIO_TYPE_UNDEFINED          }, \
    { GADI_GPIO_36, GADI_GPIO_TYPE_UNDEFINED          }, \
    { GADI_GPIO_37, GADI_GPIO_TYPE_UNDEFINED          }, \
    { GADI_GPIO_38, GADI_GPIO_TYPE_UNDEFINED          }, \
    SYSTEM_GPIO_SD_TABLE\
    { GADI_GPIO_55, GADI_GPIO_TYPE_UNDEFINED                 }, \
    { GADI_GPIO_56, GADI_GPIO_TYPE_UNDEFINED                 }, \
    { GADI_GPIO_57, GADI_GPIO_TYPE_UNDEFINED                 }, \
    { GADI_GPIO_58, GADI_GPIO_TYPE_UNDEFINED                 }, \
    { GADI_GPIO_59, GADI_GPIO_TYPE_UNDEFINED                 }, \
    { GADI_GPIO_60, GADI_GPIO_TYPE_UNDEFINED                 }, \
    { GADI_GPIO_61, GADI_GPIO_TYPE_UNDEFINED                 }, \
    { GADI_GPIO_62, GADI_GPIO_TYPE_UNDEFINED                 }
#endif

#elif defined (USE_LCD_TPO990000072)  //RGB 8bit

#if SYSTEM_INIT_GADI_GPIO == 1
#define SYSTEM_GPIO_XREF_TABLE                      \
    { GADI_GPIO_0 , GADI_GPIO_TYPE_OUTPUT_SF_CS0             }, \
    { GADI_GPIO_1 , GADI_GPIO_TYPE_OUTPUT_SF_CS1             }, \
    { GADI_GPIO_2 , GADI_GPIO_TYPE_UNDEFINED           }, \
    { GADI_GPIO_3 , GADI_GPIO_TYPE_UNDEFINED/*LCD_G*/           }, \
    { GADI_GPIO_4 , GADI_GPIO_TYPE_UNDEFINED /*LCD_B*/          }, \
    { GADI_GPIO_5 , GADI_GPIO_TYPE_UNDEFINED           }, \
    { GADI_GPIO_6 , GADI_GPIO_TYPE_UNDEFINED           }, \
    { GADI_GPIO_7 , GADI_GPIO_TYPE_UNDEFINED           }, \
    { GADI_GPIO_8 , GADI_GPIO_TYPE_UNDEFINED           }, \
    { GADI_GPIO_9 , GADI_GPIO_TYPE_UNDEFINED           }, \
    { GADI_GPIO_10, GADI_GPIO_TYPE_UNDEFINED           }, \
    { GADI_GPIO_11, GADI_GPIO_TYPE_UNDEFINED /*LCD_B*/ }, \
    { GADI_GPIO_12, GADI_GPIO_TYPE_OUTPUT_VD_HSYNC           }, \
    { GADI_GPIO_13, GADI_GPIO_TYPE_OUTPUT_VD_VSYNC           }, \
    { GADI_GPIO_14, GADI_GPIO_TYPE_OUTPUT_VD_HVLD            }, \
    { GADI_GPIO_15, GADI_GPIO_TYPE_OUTPUT_SPI1_SCLK/*lcd_scl*/        }, \
    { GADI_GPIO_16, GADI_GPIO_TYPE_OUTPUT_SPI1_SO/*lcd_sda*/       }, \
    { GADI_GPIO_17, GADI_GPIO_TYPE_OUTPUT_0 /*lcd_bl_en*/      }, \
    { GADI_GPIO_18, GADI_GPIO_TYPE_OUTPUT_SPI1_CS0/*lcd_sel   lcd_rst*/        }, \
    { GADI_GPIO_19, GADI_GPIO_TYPE_OUTPUT_VD_CLOCK/*lcd_clk*/  }, \
    { GADI_GPIO_20, GADI_GPIO_TYPE_OUTPUT_VD_DATA0/*LCD_R*/ }, \
    { GADI_GPIO_21, GADI_GPIO_TYPE_OUTPUT_VD_DATA1          }, \
    { GADI_GPIO_22, GADI_GPIO_TYPE_OUTPUT_VD_DATA2          }, \
    { GADI_GPIO_23, GADI_GPIO_TYPE_OUTPUT_VD_DATA3          }, \
    { GADI_GPIO_24, GADI_GPIO_TYPE_OUTPUT_VD_DATA4          }, \
    { GADI_GPIO_25, GADI_GPIO_TYPE_INPUT_UART0_RX            }, \
    { GADI_GPIO_26, GADI_GPIO_TYPE_OUTPUT_UART0_TX           }, \
    { GADI_GPIO_27, GADI_GPIO_TYPE_UNDEFINED /*sensor reset*/  }, \
    { GADI_GPIO_28, GADI_GPIO_TYPE_INOUT_I2C_DATA/*SDA*/     }, \
    { GADI_GPIO_29, GADI_GPIO_TYPE_INOUT_I2C_CLK /*SCL*/     }, \
    { GADI_GPIO_30, GADI_GPIO_TYPE_OUTPUT_VD_DATA5          }, \
    { GADI_GPIO_31, GADI_GPIO_TYPE_OUTPUT_VD_DATA6          }, \
    { GADI_GPIO_32, GADI_GPIO_TYPE_OUTPUT_VD_DATA7/*LCD_R*/ }, \
    { GADI_GPIO_33, GADI_GPIO_TYPE_UNDEFINED /*LCD_G*/ }, \
    { GADI_GPIO_34, GADI_GPIO_TYPE_UNDEFINED           }, \
    { GADI_GPIO_35, GADI_GPIO_TYPE_UNDEFINED          }, \
    { GADI_GPIO_36, GADI_GPIO_TYPE_UNDEFINED          }, \
    { GADI_GPIO_37, GADI_GPIO_TYPE_UNDEFINED          }, \
    { GADI_GPIO_38, GADI_GPIO_TYPE_UNDEFINED          }, \
    SYSTEM_GPIO_SD_TABLE\
    { GADI_GPIO_55, GADI_GPIO_TYPE_UNDEFINED                 }, \
    { GADI_GPIO_56, GADI_GPIO_TYPE_UNDEFINED                 }, \
    { GADI_GPIO_57, GADI_GPIO_TYPE_UNDEFINED                 }, \
    { GADI_GPIO_58, GADI_GPIO_TYPE_UNDEFINED                 }, \
    { GADI_GPIO_59, GADI_GPIO_TYPE_UNDEFINED                 }, \
    { GADI_GPIO_60, GADI_GPIO_TYPE_UNDEFINED                 }, \
    { GADI_GPIO_61, GADI_GPIO_TYPE_UNDEFINED                 }, \
    { GADI_GPIO_62, GADI_GPIO_TYPE_UNDEFINED                 }
#endif


#elif defined (USE_LCD_I80240h20p01)  // I80

#if SYSTEM_INIT_GADI_GPIO == 1
#define SYSTEM_GPIO_XREF_TABLE                      \
    { GADI_GPIO_0 , GADI_GPIO_TYPE_OUTPUT_SF_CS0             }, \
    { GADI_GPIO_1 , GADI_GPIO_TYPE_OUTPUT_SF_CS1             }, \
    { GADI_GPIO_2 , GADI_GPIO_TYPE_UNDEFINED           }, \
    { GADI_GPIO_3 , GADI_GPIO_TYPE_UNDEFINED/*LCD_G*/           }, \
    { GADI_GPIO_4 , GADI_GPIO_TYPE_UNDEFINED /*LCD_B*/          }, \
    { GADI_GPIO_5 , GADI_GPIO_TYPE_UNDEFINED           }, \
    { GADI_GPIO_6 , GADI_GPIO_TYPE_UNDEFINED           }, \
    { GADI_GPIO_7 , GADI_GPIO_TYPE_UNDEFINED           }, \
    { GADI_GPIO_8 , GADI_GPIO_TYPE_UNDEFINED           }, \
    { GADI_GPIO_9 , GADI_GPIO_TYPE_UNDEFINED           }, \
    { GADI_GPIO_10, GADI_GPIO_TYPE_UNDEFINED           }, \
    { GADI_GPIO_11, GADI_GPIO_TYPE_UNDEFINED /*LCD_B*/ }, \
    { GADI_GPIO_12, GADI_GPIO_TYPE_OUTPUT_VD_HSYNC           }, \
    { GADI_GPIO_13, GADI_GPIO_TYPE_OUTPUT_VD_VSYNC           }, \
    { GADI_GPIO_14, GADI_GPIO_TYPE_OUTPUT_I80_DCX          }, \
    { GADI_GPIO_15, GADI_GPIO_TYPE_OUTPUT_I80_WRN/*lcd_scl*/        }, \
    { GADI_GPIO_16, GADI_GPIO_TYPE_OUTPUT_I80_RDN/*lcd_sda*/       }, \
    { GADI_GPIO_17, GADI_GPIO_TYPE_OUTPUT_0/*lcd_bl_en*/      }, \
    { GADI_GPIO_18, GADI_GPIO_TYPE_OUTPUT_I80_LCD_RST/*lcd_sel*/        }, \
    { GADI_GPIO_19, GADI_GPIO_TYPE_OUTPUT_1/*lcd_clk*/  }, \
    { GADI_GPIO_20, GADI_GPIO_TYPE_INOUT_I80_DATA7/*LCD_R*/ }, \
    { GADI_GPIO_21, GADI_GPIO_TYPE_INOUT_I80_DATA6          }, \
    { GADI_GPIO_22, GADI_GPIO_TYPE_INOUT_I80_DATA5          }, \
    { GADI_GPIO_23, GADI_GPIO_TYPE_INOUT_I80_DATA4          }, \
    { GADI_GPIO_24, GADI_GPIO_TYPE_INOUT_I80_DATA3          }, \
    { GADI_GPIO_25, GADI_GPIO_TYPE_INPUT_UART0_RX            }, \
    { GADI_GPIO_26, GADI_GPIO_TYPE_OUTPUT_UART0_TX           }, \
    { GADI_GPIO_27, GADI_GPIO_TYPE_UNDEFINED /*sensor reset*/  }, \
    { GADI_GPIO_28, GADI_GPIO_TYPE_INOUT_I2C_DATA/*SDA*/     }, \
    { GADI_GPIO_29, GADI_GPIO_TYPE_INOUT_I2C_CLK /*SCL*/     }, \
    { GADI_GPIO_30, GADI_GPIO_TYPE_INOUT_I80_DATA2          }, \
    { GADI_GPIO_31, GADI_GPIO_TYPE_INOUT_I80_DATA1          }, \
    { GADI_GPIO_32, GADI_GPIO_TYPE_INOUT_I80_DATA0/*LCD_R*/ }, \
    { GADI_GPIO_33, GADI_GPIO_TYPE_UNDEFINED /*LCD_G*/ }, \
    { GADI_GPIO_34, GADI_GPIO_TYPE_UNDEFINED           }, \
    { GADI_GPIO_35, GADI_GPIO_TYPE_UNDEFINED          }, \
    { GADI_GPIO_36, GADI_GPIO_TYPE_UNDEFINED          }, \
    { GADI_GPIO_37, GADI_GPIO_TYPE_INOUT_I2C_CLK2          }, \
    { GADI_GPIO_38, GADI_GPIO_TYPE_INOUT_I2C_DATA2          }, \
    SYSTEM_GPIO_SD_TABLE\
    { GADI_GPIO_55, GADI_GPIO_TYPE_UNDEFINED                 }, \
    { GADI_GPIO_56, GADI_GPIO_TYPE_UNDEFINED                 }, \
    { GADI_GPIO_57, GADI_GPIO_TYPE_UNDEFINED                 }, \
    { GADI_GPIO_58, GADI_GPIO_TYPE_UNDEFINED                 }, \
    { GADI_GPIO_59, GADI_GPIO_TYPE_UNDEFINED                 }, \
    { GADI_GPIO_60, GADI_GPIO_TYPE_UNDEFINED                 }, \
    { GADI_GPIO_61, GADI_GPIO_TYPE_UNDEFINED                 }, \
    { GADI_GPIO_62, GADI_GPIO_TYPE_UNDEFINED                 }
#endif

#elif defined (USE_BT1120)  //RGB 8bit
#if SYSTEM_INIT_GADI_GPIO == 1
#define SYSTEM_GPIO_XREF_TABLE                      \
    { GADI_GPIO_0 , GADI_GPIO_TYPE_OUTPUT_SF_CS0             }, \
    { GADI_GPIO_1 , GADI_GPIO_TYPE_OUTPUT_SF_CS1             }, \
    { GADI_GPIO_2 , GADI_GPIO_TYPE_UNDEFINED           }, \
    { GADI_GPIO_3 , GADI_GPIO_TYPE_UNDEFINED/*LCD_G*/           }, \
    { GADI_GPIO_4 , GADI_GPIO_TYPE_UNDEFINED /*LCD_B*/          }, \
    { GADI_GPIO_5 , GADI_GPIO_TYPE_UNDEFINED           }, \
    { GADI_GPIO_6 , GADI_GPIO_TYPE_UNDEFINED           }, \
    { GADI_GPIO_7 , GADI_GPIO_TYPE_UNDEFINED           }, \
    { GADI_GPIO_8 , GADI_GPIO_TYPE_UNDEFINED           }, \
    { GADI_GPIO_9 , GADI_GPIO_TYPE_UNDEFINED           }, \
    { GADI_GPIO_10, GADI_GPIO_TYPE_UNDEFINED           }, \
    { GADI_GPIO_11, GADI_GPIO_TYPE_UNDEFINED /*LCD_B*/ }, \
    { GADI_GPIO_12, GADI_GPIO_TYPE_OUTPUT_VD_HSYNC           }, \
    { GADI_GPIO_13, GADI_GPIO_TYPE_OUTPUT_VD_VSYNC           }, \
    { GADI_GPIO_14, GADI_GPIO_TYPE_OUTPUT_VD_HVLD            }, \
    { GADI_GPIO_15, GADI_GPIO_TYPE_OUTPUT_1/*lcd_scl*/        }, \
    { GADI_GPIO_16, GADI_GPIO_TYPE_OUTPUT_1/*lcd_sda*/       }, \
    { GADI_GPIO_17, GADI_GPIO_TYPE_OUTPUT_0/*lcd_bl_en*/      }, \
    { GADI_GPIO_18, GADI_GPIO_TYPE_OUTPUT_1/*lcd_sel*/        }, \
    { GADI_GPIO_19, GADI_GPIO_TYPE_OUTPUT_VD_CLOCK/*lcd_clk*/  }, \
    { GADI_GPIO_20, GADI_GPIO_TYPE_OUTPUT_VD_DATA0/*LCD_R*/ }, \
    { GADI_GPIO_21, GADI_GPIO_TYPE_OUTPUT_VD_DATA1          }, \
    { GADI_GPIO_22, GADI_GPIO_TYPE_OUTPUT_VD_DATA2          }, \
    { GADI_GPIO_23, GADI_GPIO_TYPE_OUTPUT_VD_DATA3          }, \
    { GADI_GPIO_24, GADI_GPIO_TYPE_OUTPUT_VD_DATA4          }, \
    { GADI_GPIO_25, GADI_GPIO_TYPE_INPUT_UART0_RX            }, \
    { GADI_GPIO_26, GADI_GPIO_TYPE_OUTPUT_UART0_TX           }, \
    { GADI_GPIO_27, GADI_GPIO_TYPE_UNDEFINED /*sensor reset*/  }, \
    { GADI_GPIO_28, GADI_GPIO_TYPE_INOUT_I2C_DATA/*SDA*/     }, \
    { GADI_GPIO_29, GADI_GPIO_TYPE_INOUT_I2C_CLK /*SCL*/     }, \
    { GADI_GPIO_30, GADI_GPIO_TYPE_OUTPUT_VD_DATA5          }, \
    { GADI_GPIO_31, GADI_GPIO_TYPE_OUTPUT_VD_DATA6          }, \
    { GADI_GPIO_32, GADI_GPIO_TYPE_OUTPUT_VD_DATA7/*LCD_R*/ }, \
    { GADI_GPIO_33, GADI_GPIO_TYPE_UNDEFINED /*LCD_G*/ }, \
    { GADI_GPIO_34, GADI_GPIO_TYPE_UNDEFINED           }, \
    { GADI_GPIO_35, GADI_GPIO_TYPE_UNDEFINED          }, \
    { GADI_GPIO_36, GADI_GPIO_TYPE_UNDEFINED          }, \
    { GADI_GPIO_37, GADI_GPIO_TYPE_UNDEFINED          }, \
    { GADI_GPIO_38, GADI_GPIO_TYPE_UNDEFINED          }, \
    SYSTEM_GPIO_SD_TABLE\
    { GADI_GPIO_55, GADI_GPIO_TYPE_UNDEFINED                 }, \
    { GADI_GPIO_56, GADI_GPIO_TYPE_UNDEFINED                 }, \
    { GADI_GPIO_57, GADI_GPIO_TYPE_UNDEFINED                 }, \
    { GADI_GPIO_58, GADI_GPIO_TYPE_UNDEFINED                 }, \
    { GADI_GPIO_59, GADI_GPIO_TYPE_UNDEFINED                 }, \
    { GADI_GPIO_60, GADI_GPIO_TYPE_UNDEFINED                 }, \
    { GADI_GPIO_61, GADI_GPIO_TYPE_UNDEFINED                 }, \
    { GADI_GPIO_62, GADI_GPIO_TYPE_UNDEFINED                 }
#endif

#else
#if SYSTEM_INIT_GADI_GPIO == 1
#define SYSTEM_GPIO_XREF_TABLE                      \
    { GADI_GPIO_0 , GADI_GPIO_TYPE_OUTPUT_SF_CS0             }, \
    { GADI_GPIO_1 , GADI_GPIO_TYPE_OUTPUT_SF_CS1             }, \
    { GADI_GPIO_2 , GADI_GPIO_TYPE_UNDEFINED           }, \
    { GADI_GPIO_3 , GADI_GPIO_TYPE_UNDEFINED/*LCD_G*/           }, \
    { GADI_GPIO_4 , GADI_GPIO_TYPE_UNDEFINED /*LCD_B*/          }, \
    { GADI_GPIO_5 , GADI_GPIO_TYPE_UNDEFINED           }, \
    { GADI_GPIO_6 , GADI_GPIO_TYPE_UNDEFINED           }, \
    { GADI_GPIO_7 , GADI_GPIO_TYPE_UNDEFINED           }, \
    { GADI_GPIO_8 , GADI_GPIO_TYPE_UNDEFINED           }, \
    { GADI_GPIO_9 , GADI_GPIO_TYPE_UNDEFINED           }, \
    { GADI_GPIO_10, GADI_GPIO_TYPE_UNDEFINED           }, \
    { GADI_GPIO_11, GADI_GPIO_TYPE_UNDEFINED /*LCD_B*/ }, \
    { GADI_GPIO_12, GADI_GPIO_TYPE_OUTPUT_VD_HSYNC           }, \
    { GADI_GPIO_13, GADI_GPIO_TYPE_OUTPUT_VD_VSYNC           }, \
    { GADI_GPIO_14, GADI_GPIO_TYPE_OUTPUT_VD_HVLD            }, \
    { GADI_GPIO_15, GADI_GPIO_TYPE_OUTPUT_1/*lcd_scl*/        }, \
    { GADI_GPIO_16, GADI_GPIO_TYPE_OUTPUT_1/*lcd_sda*/       }, \
    { GADI_GPIO_17, GADI_GPIO_TYPE_OUTPUT_0/*lcd_bl_en*/      }, \
    { GADI_GPIO_18, GADI_GPIO_TYPE_UNDEFINED/*lcd_sel*/        }, \
    { GADI_GPIO_19, GADI_GPIO_TYPE_UNDEFINED/*lcd_clk*/  }, \
    { GADI_GPIO_20, GADI_GPIO_TYPE_OUTPUT_VD_DATA0/*LCD_R*/ }, \
    { GADI_GPIO_21, GADI_GPIO_TYPE_OUTPUT_VD_DATA1          }, \
    { GADI_GPIO_22, GADI_GPIO_TYPE_OUTPUT_VD_DATA2          }, \
    { GADI_GPIO_23, GADI_GPIO_TYPE_OUTPUT_VD_DATA3          }, \
    { GADI_GPIO_24, GADI_GPIO_TYPE_OUTPUT_VD_DATA4          }, \
    { GADI_GPIO_25, GADI_GPIO_TYPE_INPUT_UART0_RX            }, \
    { GADI_GPIO_26, GADI_GPIO_TYPE_OUTPUT_UART0_TX           }, \
    { GADI_GPIO_27, GADI_GPIO_TYPE_UNDEFINED /*sensor reset*/  }, \
    { GADI_GPIO_28, GADI_GPIO_TYPE_INOUT_I2C_DATA/*SDA*/     }, \
    { GADI_GPIO_29, GADI_GPIO_TYPE_INOUT_I2C_CLK /*SCL*/     }, \
    { GADI_GPIO_30, GADI_GPIO_TYPE_UNDEFINED                  }, \
    { GADI_GPIO_31, GADI_GPIO_TYPE_OUTPUT_VD_DATA6          }, \
    { GADI_GPIO_32, GADI_GPIO_TYPE_OUTPUT_VD_DATA7/*LCD_R*/ }, \
    { GADI_GPIO_33, GADI_GPIO_TYPE_UNDEFINED /*LCD_G*/ }, \
    { GADI_GPIO_34, GADI_GPIO_TYPE_UNDEFINED           }, \
    { GADI_GPIO_35, GADI_GPIO_TYPE_UNDEFINED          }, \
    { GADI_GPIO_36, GADI_GPIO_TYPE_UNDEFINED          }, \
    { GADI_GPIO_37, GADI_GPIO_TYPE_UNDEFINED          }, \
    { GADI_GPIO_38, GADI_GPIO_TYPE_UNDEFINED          }, \
    SYSTEM_GPIO_SD_TABLE\
    { GADI_GPIO_55, GADI_GPIO_TYPE_UNDEFINED                 }, \
    { GADI_GPIO_56, GADI_GPIO_TYPE_UNDEFINED                 }, \
    { GADI_GPIO_57, GADI_GPIO_TYPE_UNDEFINED                 }, \
    { GADI_GPIO_58, GADI_GPIO_TYPE_UNDEFINED                 }, \
    { GADI_GPIO_59, GADI_GPIO_TYPE_UNDEFINED                 }, \
    { GADI_GPIO_60, GADI_GPIO_TYPE_UNDEFINED                 }, \
    { GADI_GPIO_61, GADI_GPIO_TYPE_INPUT_0                   }, \
    { GADI_GPIO_62, GADI_GPIO_TYPE_INPUT_0                   }
#endif
#endif

#define SYSTEM_ETH_PHY_RESET_GPIO               GADI_GPIO_NUM//not real pin
#define SYSTEM_GPIO_SENSOR_RESET    			GADI_GPIO_27
#define SYSTEM_GPIO_IR_CUT1         			GADI_GPIO_NUM
#define SYSTEM_GPIO_IR_CUT2         			GADI_GPIO_NUM
#define SYSTEM_GPIO_USB_HOST                    GADI_GPIO_30
#define SYSTEM_GPIO_LCD_BL_EN                   GADI_GPIO_17  /*lcd_bl_en*/

#endif /*GPIO_CFG_EVB_H*/
